package com.lpssfxy.dao;

import com.lpssfxy.entity.Rating;
import org.springframework.data.mongodb.repository.Aggregation;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.stereotype.Repository;

import java.util.Optional;

/**
 * 该接口继承了MongoRepository，利用MongoRepository来实现对Product进行增删改查操作
 * 注意MongoRepository后面接的泛型<Rating, String>第一个为实体类，第二个为主键ID。
 */
@Repository
public interface RatingRepository extends MongoRepository<Rating, String> {
    @Aggregation({
            "{$match: {userId: ?0, productId: ?1}}", // 匹配指定 userId 和 productId
            "{$sort: {timestamp: -1}}",              // 按时间戳降序排序（最新时间在前）
            "{$limit: 1}"                            // 仅取第一条（即最新记录）
    })
    Optional<Rating> findByUserIdAndProductId(int userId, int productId);
}
